const koa = require("koa");
const router = require("@koa/router")();
const app = new koa();
const cors = require('@koa/cors');
const bodyParser = require('koa-bodyparser');
const session = require('koa-session');
const api = require("./router/api");
const admin = require("./router/admin");
const mongoose = require("./plugin/db");
const serve = require('koa-static');
require('./utils/timing')
const CONFIG = {
  key: 'koa.sess',
  /** (string) cookie key (default is koa.sess) */
  /** (number || 'session') maxAge in ms (default is 1 days) */
  /** 'session' will result in a cookie that expires when session/browser is closed */
  /** Warning: If a session cookie is stolen, this cookie will never expire */
  maxAge: 86400000,
  autoCommit: true,
  /** (boolean) automatically commit headers (default true) */
  overwrite: true,
  /** (boolean) can overwrite or not (default true) */
  httpOnly: true,
  /** (boolean) httpOnly or not (default true) */
  signed: true,
  /** (boolean) signed or not (default true) */
  rolling: false,
  /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */
  renew: false,
  /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/
  secure: false,
  /** (boolean) secure cookie*/
  sameSite: null,
  /** (string) session cookie sameSite options (default null, don't set it) */
};

(async () => {
  const res = await mongoose.connect();
  console.log(res)
})()
app.keys = ['some secret hurr']

router.use("/api", api.routes())
router.use("/admin", admin.routes())
app.use(async (ctx, next) => {
    await next()
    if (ctx.status === 404) {
      ctx.status = 404
      ctx.body = {
        status: 0,
        message: "请确保你的接口是正确的",
        data: "你请求的接口" + ctx.request.url
      }
    }
  })
  .use(cors({ credentials: true }))
  .use(bodyParser())
  .use(session(CONFIG, app))
  .use(serve(__dirname))
  .use(router.routes())
  .use(router.allowedMethods())
app.listen(8000)

console.log("http://127.0.0.1:8000")